#include "stm32f10x.h"                  // Device header
#include "Delay.h"

#define LED_PIN GPIO_Pin_0
#define LED_GROUP GPIOA

int main(void)
{
	// 1. 使用 RCC 开启 GPIOA 的时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	
	// 2. 使用 GPIO_Init 函数初始化 GPIO
	GPIO_InitTypeDef GPIO_InitStructure;
	// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   // 推挽输出
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;      // 开漏输出
	GPIO_InitStructure.GPIO_Pin = LED_PIN;                // 选择引脚
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     // 输出速度没有特殊要求选择 50MHz 即可
	GPIO_Init(LED_GROUP, &GPIO_InitStructure);            // 初始化 A 分组下的0引脚
	

	// 3. 使用输出 或者 输入的函数控制 GPIO 口。
	while(1)
	{
		// 点亮LED
		GPIO_ResetBits(LED_GROUP, LED_PIN);
		Delay_ms(100);
		
		// 熄灭LED
		GPIO_SetBits(LED_GROUP, LED_PIN);
		Delay_ms(100);
	}
}